Tag Editor(AWS Resource Groups and Tags)でサポートされていない Amazon API Gateway のリソース情報を取得する方法を教えてください
この記事はアノテーション株式会社 AWS Technical Support Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita 7日目の記事です。
困っていた内容
Tag Editor(AWS Resource Groups and Tags)において、タグ付けしたAmazon API Gatewayの全てのリソース情報を取得しようと試みましたが、Amazon API GatewayについてはTag Editorのサポート対象外であるため、こちらの方法では取得できないことが分かりました。
Tag Editorのサポート対象外であるAmazon API Gatewayの全てのリソース情報を取得するために、他の方法があれば教えてください。
他にどんな方法があるの
以下のAWS CLIコマンドにより、API Gatewayの全てのリソース情報について取得することが可能です。
- get-apis
-
get-rest-apis
API Gatewayを作成する際に、以下の4つのAPIタイプが選択できますが、取得したいAPIタイプに応じて、API Gatewayのリソース情報を取得する上記のAWS CLIコマンドを使い分けます。
- HTTP API
- WebSocket API
- REST API
- REST API(プライベート)
どう取得すればいいの?
以下、APIタイプ毎の取得する例を示します。
「HTTP API」と「WebSocket API」の取得例
「HTTP API」と「WebSocket API」におけるAPI Gatewayのリソース情報を取得するコマンド実行例を以下に示します。
- コマンド実行例:「HTTP API」と「WebSocket API」のリソース情報の取得
$ aws apigatewayv2 get-apis { "Items": [ { "Name": "test-http-api", "Tags": { "api": "sample" }, "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "ApiId": "8coeuk6dhh", "ApiEndpoint": "https://8coeuk6dhh.execute-api.ap-northeast-1.amazonaws.com", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2021-11-16T07:45:15Z", "DisableExecuteApiEndpoint": false }, { "Name": "test-web-socket-api", "Tags": {}, "ProtocolType": "WEBSOCKET", "RouteSelectionExpression": "$request.body.action", "ApiId": "c0eo8khqzj", "ApiEndpoint": "wss://c0eo8khqzj.execute-api.ap-northeast-1.amazonaws.com", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2021-11-16T07:46:14Z", "DisableExecuteApiEndpoint": false } ] }
「REST API」と「REST API(プライベート)」の取得例
「REST API」と「REST API(プライベート)」におけるAPI Gatewayのリソース情報を取得するコマンド実行例を以下に示します。
- コマンド実行例:「REST API」と「REST API(プライベート)」のリソース情報の取得
$ aws apigateway get-rest-apis { "items": [ { "apiKeySource": "HEADER", "name": "test-rest-api-2", "endpointConfiguration": { "types": [ "PRIVATE" ] }, "createdDate": 1637050175, "disableExecuteApiEndpoint": false, "id": "8mlyh4cj5f" }, { "apiKeySource": "HEADER", "name": "test-rest-api", "endpointConfiguration": { "types": [ "REGIONAL" ] }, "createdDate": 1637048808, "disableExecuteApiEndpoint": false, "id": "j2cltoqad5" } ] }